arinc: add cpu-pool support to scheduler
authorNathan Studer <nate.studer@dornerworks.com>
Wed, 4 Dec 2013 12:29:00 +0000 (13:29 +0100)
committerJan Beulich <jbeulich@suse.com>
Wed, 4 Dec 2013 12:29:00 +0000 (13:29 +0100)
commit9f0c658baedcd0f3f71c35b54965e440ffef0e45
tree3a772a42fcbed5056ffa5f7f4dc9faca555a8484
parentdc37e0bfffc673f4bdce1d69ad86098bfb0ab531
arinc: add cpu-pool support to scheduler

1.  Remove the restriction that dom0 must be in the schedule, since dom-0 may
not belong to the scheduler's pool.
2.  Add a schedule entry for each of dom-0's vcpus as they are created.
3.  Add code to deal with empty schedules in the do_schedule function.
4.  Call the correct idle task for the pcpu on which the scheduling decision
is being made in do_schedule.
5.  Add code to prevent migration of a vcpu.
6.  Implement a proper cpu_pick function, which prefers the current processor.
7.  Add a scheduler lock to protect access to global variables from multiple
    PCPUs.

These changes do not implement arinc653 multicore.  Since the schedule only
supports 1 vcpu entry per slot, even if the vcpus of a domain are run on
multiple pcpus, the scheduler will essentially serialize their execution.

Signed-off-by: Nathan Studer <nate.studer@dornerworks.com>
Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>
xen/common/sched_arinc653.c